-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Fix timing issues on FMCOMMS2 and AD9081/VCU118 #1909
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
ba373d6
to
2cc0018
Compare
Split into more atomic commits as requested by @acostina |
RetriggerCI |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good and everything builds fine, it would be nice to test it on hardware before merging.
system_bd.tcl scripts are not using your BOARD_NAME variable. |
RetriggerCI |
RetriggerCI |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me!
7fed80d
to
070ead4
Compare
Agglutinated similar commits per project and logical group as suggested by @sarpadi (no changes made) |
0955d61
to
ee11c3c
Compare
You placed auto_timing_fix.tcl in hdl/scripts |
Signed-off-by: Pedro Mendonca <Pedro.Mendonca@analog.com>
- added new build flag (ADI_POST_ROUTE_SCRIPT) - fixed typo - removed redundant elsif - updated build docs to build_hdl.rst Signed-off-by: Pedro Mendonca <Pedro.Mendonca@analog.com>
- added auto timing fix (ATF) script as post route script - changed strategy to Congestion_SpreadLogic_high - refactored system_project.tcl as Factory Method - updated header copyright year Signed-off-by: Pedro Mendonca <Pedro.Mendonca@analog.com>
- added auto timing fix (ATF) script as post route script - changed strategy to Congestion_SpreadLogic_high Signed-off-by: Pedro Mendonca <Pedro.Mendonca@analog.com>
- added auto timing fix (ATF) script as post route script - changed strategy to Congestion_SpreadLogic_high - refactored system_project.tcl as Factory Method - updated header copyright year Signed-off-by: Pedro Mendonca <Pedro.Mendonca@analog.com>
- added auto timing fix (ATF) script as post route script - changed strategy to Congestion_SpreadLogic_high - refactored system_project.tcl as Factory Method - updated header copyright year Signed-off-by: Pedro Mendonca <Pedro.Mendonca@analog.com>
58b97d0
ee11c3c
to
58b97d0
Compare
Moved ATF script to projects/scripts as suggested by @AndreiGrozav |
RetriggerCI |
PR Description
This PR addresses timing violations observed across multiple projects following the upgrade to Vivado 2025.1, without requiring any HDL modifications.
After the upgrade, most designs exhibited hold violations, likely due to Vivado's aggressive optimization for setup timing. This behavior appears to shorten certain paths excessively, inadvertently introducing hold issues. While invoking phys_opt_design post-route helped resolve some violations automatically, it was not consistently effective, particularly in congested regions where rerouting options were limited.
To mitigate this, the Congestion_SpreadLogic_high strategy was adopted (alternatively _medium or _low depending on design needs). This approach encourages a more distributed placement of logic, which not only alleviates congestion but can also accelerate implementation due to the relatively low resource utilization. Although this spreading may introduce setup timing challenges, a subsequent phys_opt_design pass (or two) has proven highly effective at resolving them.
By spreading the logic and reducing congestion, Vivado gains greater flexibility during post-route optimization, improving its ability to correct HOLD violations without manual intervention.
Change log
PR Type
PR Checklist